package com.sdry.product.sorting.service;


import com.sdry.basic.entity.Container;
import com.sdry.basic.entity.Material;
import com.sdry.basic.entity.ProductionStation;
import com.sdry.basic.entity.WarehousesRegionLocation;
import com.sdry.product.prod.entity.ResultAppList;
import com.sdry.product.sorting.entity.SortingApp;

import java.util.List;

/**
 * 查询卸车收货的生产单据查询
 * @author chenBin
 * @date 2020年3月18日 14:54:58
 * @version 1.0
 */
public interface SortingAppService {

    /**
     * 查询卸车收货的生产单据查询
     * @return
     */
    List<SortingApp> queryTransitLoadingDetailNumber();

    /**
     * 查询容器分拣区卸车收货编号
     * @param carNumber 车牌
     * @param tonumber
     * @return List<ProductionStation>
     */
    List<ProductionStation> querySortingContainerNumber(String carNumber, String toNumber);

    /**
     * 根据容器ID查找物料
     * @param containerNumber 容器编号
     * @return List<Material>
     */
    List<ResultAppList<Material>> queryBaseContainerMaterielList(String[] containerNumber);

    /**
     * 卸车收货提交
     * @param json 字符串
     * @param userId
     */
    void addSortingAppReceiving(String json, String userId);

    /**
     * 查询框编号
     * @return List<Container>
     */
    List<Container> queryBaseContainerNumber();

    /**
     * zh
     * @param typeNumber
     * @return
     */
    List<WarehousesRegionLocation> queryBaseWarehousesRegionLocationNumber(String typeNumber);

    /**
     * 入分拣区提交
     * @param libraryId
     * @param containerIds
     * @param userId
     */
    void addSoringFrame(String libraryId, String containerIds, String userId);

    /**
     * 装车发货库存编号查询
     * @return
     */
    List<Container> querySortingFrameNumber();

    /**
     * 扫描出分拣区（提交）
     */
    void addSortingOutStock(String libraryId, String containerIds, String userId);

    /**
     * 包含空框子
     * @param psNumbers 编号
     * @return
     */
    List<ResultAppList<Material>> queryBaseContainerMaterielListAndEmpty(String[] psNumbers);

    /**
     * 出库物料查询接口
     * @param psnumber
     * @return
     */
    List<ResultAppList<Material>> addSortingOutMaterielList(String psnumber);

    /**
     * 入分拣区装车发货
     * @param psnumber
     * @return
     */
    List<ResultAppList<Material>> querySortingReceivingNumberMaterielList(String psnumber);
}
